package _01_String;

/**
 * 常用方法
 * 
 * 1.谁的方法,这里肯定是 String 的
 * 
 * 2.什么方法,成员还是静态,知道是什么方法的时候,之后才怎么调用,使用类名,还是使用对象
 * 
 * 3.方法名是什么
 * 
 * 4.参数是什么,代表什么
 * 
 * 5.返回值是什么
 * 
 * 6.功能是什么,这个方法能做什么
 * 
 * @author lenovo
 * @Date 2020年7月15日
 * @Time 下午6:41:56
 */
public class String_04 {

	public static void main(String[] args) {
		// 1 char charAt(int index) : 获取字符串中,某个位置上的字符,相当于 arr[index]
		String s1 = "qwer";
		char c1 = s1.charAt(2);
		System.out.println(c1);// e

		// 2 boolean endsWith(String suffix) : 判断字符串是否以指定字符串结尾
		// startsWith(String prefix) 判断开始
		// true
		System.out.println("Hello.java".endsWith(".java"));// true
		// false 注意空格
		System.out.println("Hello.java".endsWith(".java "));// false

		// 3 boolean equalslgnoreCase(String anotherString) : 不区分大小写比较两个字符串是否相等
		System.out.println("abc".equals("ABC"));// false
		System.out.println("abc".equalsIgnoreCase("ABC"));// true

		// 4 byte[] getBytes() : 把字符串转换为字节数组
		byte[] bytes = "abc".getBytes();
		for (byte b : bytes) {
			System.out.println(b);
		}
//		97
//		98
//		99
		System.out.println("---");

		// 5 int indexOf(String str) : 获取指定字符串的起始索引,找不到就返回 -1
		System.out.println("asdfasdfasdf".indexOf("sd"));// 1

		// 6 int indexOf(String str , int fromIndex) : 从指定位置开始查找,找不到返回 -1
		System.out.println("asdfasdfasdf".indexOf("f", 1));// 3

		// 7 int lastIndexOf(String str) : 最后一次出现位置的索引,找不到返回 -1
		System.out.println("asdfasdfasdf".lastIndexOf("s"));// 9

		// 8 int length() : 获取字符串长度
		System.out.println("abc".length());// 3

		// 9 String replaceAll(String regex , String replacement) : 把指定字符串换为指定字符
		// 还有一个方法 replace 这两个功能一样,只不过replace支持正则表达式
		System.out.println("12h,dha!sioh@#213!23><".replaceAll("[^0-9a-zA-Z]", ""));// 12hdhasioh21323

		// 10 String[] split(String regit) : 分割字符串,需要指定分隔符,返回值是字符串数组,支持正则表达式
		String myTime = "2008.08.08";
		// 如果是以 . 进行分割,需要 \\. 因为 split 支持正则表达式,而 . 在正则表达式中有特殊含义,所以需要转义
		// 在正则表达式中,通过 \. 对 . 进行转义,但是 \ 在 java 中也是转义符,所以需要 \\. 来进行转义 \
		String[] ymd = myTime.split("\\.");
		for (String string : ymd) {
			System.out.println(string);
		}
//		2008
//		08
//		08
		System.out.println("---");

		// 11 String substring (int begin) : 获取该字符串以某个下标开始的子字符串(包括)
		System.out.println("asdfasdf".substring(2));// dfasdf

		// 12 String substring(int beginIndex , int endIdex)
		// 以某个下标开始(包括),到某个下标结束的子字符串(不包括)
		System.out.println("asdfasdf".substring(2, 6));// dfas

		// 13 char[] toCharArray() : 转换为 char 数组
		char[] c2 = "qwer".toCharArray();
		for (char c : c2) {
			System.out.println(c);
		}
//		q
//		w
//		e
//		r
		System.out.println("---");

		// 14 转大写和转小写
		System.out.println("asdFASdf".toUpperCase());// ASDFASDF
		System.out.println("asdFASdf".toLowerCase());// asdfasdf

		// 15 String trim() : 去除字符串首尾的空格
		System.out.println("   asdf  a  s   ".trim());// asdf a sasdf a s

		// 16 static String valueOf(Object obj) : 调用对象的 toString 方法,并处理 null 值
	}

}
